<?  
  set_time_limit(4500);
  /* Se asegura que el archivo es incluido por el index */
    defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Producto_turistico_exe( $this );
    
	class Producto_turistico_exe extends Exe
	{
	function Producto_turistico_exe( &$oModule )
		{
			$this->Exe( $oModule );
		}
		// AGREGAR_PRODUCTO_TURISTICO
		function insert()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Producto_turistico_frm' );
			extract( $oForm->getFieldArray() );
			// Busca el siguiente id
			$ncProducto      = $this->oDatabase->nextKey("gtProductoTuristico", "ncProducto"  );
			$this->oDatabase->insert("gtProductoTuristico"
								,"ncProducto", $ncProducto
								,"ncProductoPadre", $ncProductoPadre
								,"cFuente", $cFuente
								,"cDescripcion", $cDescripcion
								,"cdProducto", $cdProducto);
								
			$aSegmentos = $oForm->aFields['aSegmentos']->getValue();
			foreach ( $aSegmentos as $ncSegmento )
			{
				$this->oDatabase->insert( "gtProductoSegmento",
										"ncSegmento", $ncSegmento,
										"ncProducto", $ncProducto );
			}

			$this->setInputData( $ncProducto, $cdProducto );
		}
		
		// ELIMINAR_PRODUCTO_TURISTICO
		function delete()
		{
			$ncProducto = getParam( 'ncProducto' );
			$this->oDatabase->delete("gtProductoSegmento", "ncProducto", $ncProducto );
			$this->oDatabase->delete("gtProductoTuristico","ncProducto", $ncProducto );
		}
		
		// MODIFICAR_PRODUCTO_TURISTICO
		function update()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Producto_turistico_frm' );
			extract( $oForm->getFieldArray() );
			$this->oDatabase->update("gtProductoTuristico"
								,"ncProductoPadre", $ncProductoPadre
								,"cdProducto", $cdProducto
								,"cFuente", $cFuente
								,"cDescripcion", $cDescripcion
								,"WHERE"
								 ,"ncProducto", $ncProducto);
								 
			$this->oDatabase->delete("gtProductoSegmento", "ncProducto", $ncProducto );
			$aSegmentos = $oForm->aFields['aSegmentos']->getValue();
			foreach ( $aSegmentos as $ncSegmento )
			{
				$this->oDatabase->insert( "gtProductoSegmento",
										"ncSegmento", $ncSegmento,
										"ncProducto", $ncProducto );
			}
								 
			$this->setInputData( $ncProducto, $cdProducto );
		}
	}
?>